تحلیل و ارزیابی عملکرد الگوریتم های تکاملی در بهینه سازی تولید موارد آزمون

Σχετικά έγγραφα
محاسبه ی برآیند بردارها به روش تحلیلی

روش محاسبه ی توان منابع جریان و منابع ولتاژ

تصاویر استریوگرافی.

ﯽﺳﻮﻃ ﺮﯿﺼﻧ ﻪﺟاﻮﺧ ﯽﺘﻌﻨﺻ هﺎﮕﺸﻧاد

جلسه ی ۱۰: الگوریتم مرتب سازی سریع

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) X"Y=-XY" X" X" kx = 0

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد:

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ(

تحلیل مدار به روش جریان حلقه

آزمایش 8: تقویت کننده عملیاتی 2

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك

مدار معادل تونن و نورتن

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار

جلسه ی ۴: تحلیل مجانبی الگوریتم ها

هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند.

چکیده مقدمه کلید واژه ها:

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i.

مقدمه -1-4 تحليلولتاژگرهمدارهاييبامنابعجريان 4-4- تحليلجريانمشبامنابعولتاژنابسته

Spacecraft thermal control handbook. Space mission analysis and design. Cubesat, Thermal control system

ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی

Angle Resolved Photoemission Spectroscopy (ARPES)

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین

جلسه ی ۳: نزدیک ترین زوج نقاط

بسم اهلل الرحمن الرحیم آزمایشگاه فیزیک )2( shimiomd

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { }

جلسه ی ۲۴: ماشین تورینگ

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم

جلسه 14 را نیز تعریف کرد. عملگري که به دنبال آن هستیم باید ماتریس چگالی مربوط به یک توزیع را به ماتریس چگالی مربوط به توزیع حاشیه اي آن ببرد.

دانشکده ی علوم ریاضی جلسه ی ۵: چند مثال

آموزش SPSS مقدماتی و پیشرفته مدیریت آمار و فناوری اطالعات -


قاعده زنجیره ای برای مشتقات جزي ی (حالت اول) :

جلسه ی ۱۸: درهم سازی سرتاسری - درخت جست و جوی دودویی

بخش غیرآهنی. هدف: ارتقاي خواص ابرکشسانی آلياژ Ni Ti مقدمه

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم

شبکه های عصبی در کنترل

فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت

6- روش های گرادیان مبنا< سر فصل مطالب

فصل 5 :اصل گسترش و اعداد فازی

جلسه ی ۵: حل روابط بازگشتی

فصل پنجم زبان های فارغ از متن

جلسه 12 به صورت دنباله اي از,0 1 نمایش داده شده اند در حین محاسبه ممکن است با خطا مواجه شده و یکی از بیت هاي آن. p 1

ارزیابی بهره وری متقاطع DEA بر پایه بهبود پارتو

مسائل. 2 = (20)2 (1.96) 2 (5) 2 = 61.5 بنابراین اندازه ی نمونه الزم باید حداقل 62=n باشد.

دبیرستان غیر دولتی موحد

فهرست مطالب جزوه ی فصل اول مدارهای الکتریکی مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل تحلیل مدار به روش جریان حلقه... 22

5- مروری بر روش های جستجوی تصادفی > سر فصل مطالب

تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: میباشد. تلفات خط انتقال با مربع توان انتقالی متناسب

نﺎﯿﺋاﺪﺧ ﺎﺿر ﺪﯿﺳ سﺪﻨﻬﻣ

1- مقدمه. 2 Action. 1 Heuristic

تئوری جامع ماشین بخش سوم جهت سادگی بحث یک ماشین سنکرون دو قطبی از نوع قطب برجسته مطالعه میشود.

عنوان: رمزگذاري جستجوپذیر متقارن پویا

راهنمای کاربری موتور بنزینی )سیکل اتو(

به نام خدا. Sparse Coding ستاره فرامرزپور

فصل سوم .)MAC( و الگوریتم کنترل مدل )کنترل کننده مدل الگوریتمی-پاسخ ضربه-( )DMC(

Top Down Parsing LL(1) Narges S. Bathaeian

کنترل تطبیقی غیر مستقیم مبتنی بر تخصیص قطب با مرتبه کسری

هد ف های هفته ششم: 1- اجسام متحرک و ساکن را از هم تشخیص دهد. 2- اندازه مسافت و جا به جایی اجسام متحرک را محاسبه و آن ها را مقایسه کند 3- تندی متوسط

1- مقدمه ای بر شبیه سازی< سر فصل مطالب

مکانيک جامدات ارائه و تحليل روش مناسب جهت افزایش استحکام اتصاالت چسبي در حالت حجم چسب یکسان

مقاومت مصالح 2 فصل 9: خيز تيرها. 9. Deflection of Beams

فهرست جزوه ی فصل دوم مدارهای الکتریکی ( بردارها(

ارائه یک مدل ریاضی جهت بهینه سازی فرایند توسعه محصول

یدنب هشوخ یاه متیروگلا

هندسه تحلیلی بردارها در فضای R

هدف از این آزمایش آشنایی با رفتار فرکانسی مدارهاي مرتبه اول نحوه تأثیر مقادیر عناصر در این رفتار مشاهده پاسخ دامنه

بررسی خرابی در سازه ها با استفاده از نمودارهاي تابع پاسخ فرکانس مجتبی خمسه

طرح یافتن مکان خطا در خطوط انتقال چندترمینالی با استفاده از اندازه گیریهای ناهمگام )آسنکرون(

مثلث بندی دلونی فصل 9 مژگان صالحی- دی 92 استاد راهنما: جناب آقای دکتر محمد فرشی

شاخصهای پراکندگی دامنهی تغییرات:

مارکوف 1.مقدمه: سید مهدی صفوی محمد میکاییلی محمد پویان چکیده ما با مطالعه مدل مخفی میدان تصادفی مارکوف از الگوریتم EM

فصل اول پیچیدگی زمانی و مرتبه اجرایی

ﻞﻜﺷ V لﺎﺼﺗا ﺎﻳ زﺎﺑ ﺚﻠﺜﻣ لﺎﺼﺗا هﺎﮕﺸﻧاد نﺎﺷﺎﻛ / دﻮﺷ

تعیین محل قرار گیری رله ها در شبکه های سلولی چندگانه تقسیم کد

سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات

تمرین اول درس کامپایلر

جلسه 2 1 فضاي برداري محاسبات کوانتمی (22671) ترم بهار

جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان

Beta Coefficient نویسنده : محمد حق وردی

7- روش تقریب میانگین نمونه< سر فصل مطالب

یک سیستم تخصیص منابع هوشمند بر مبنای OFDMA در یک سیستم بیسیم توزیع شده با استفاده از تئوری بازیها

فصل سوم جریان های الکتریکی و مدارهای جریان مستقیم جریان الکتریکی

فصل چهارم تعیین موقعیت و امتدادهای مبنا

جلسه 16 نظریه اطلاعات کوانتمی 1 ترم پاییز

تحلیل الگوریتم پیدا کردن ماکزیمم

تلفات کل سيستم کاهش مي يابد. يکي ديگر از مزاياي اين روش بهبود پروفيل ولتاژ ضريب توان و پايداري سيستم مي باشد [-]. يکي ديگر از روش هاي کاهش تلفات سيستم

تغییر پذیری و مسیریابی در شبکه Ad Hoc با استفاده از الگوریتم کلونی مورچگان

پروژه یازدهم: ماشین هاي بردار پشتیبان

تئوری رفتار مصرف کننده : می گیریم. فرض اول: فرض دوم: فرض سوم: فرض چهارم: برای بیان تئوری رفتار مصرف کننده ابتدا چهار فرض زیر را در نظر

جلسه 15 1 اثر و اثر جزي ی نظریه ي اطلاعات کوانتومی 1 ترم پاي یز جدایی پذیر باشد یعنی:

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn

تمرینات درس ریاض عموم ٢. r(t) = (a cos t, b sin t), ٠ t ٢π. cos ٢ t sin tdt = ka۴. x = ١ ka ۴. m ٣ = ٢a. κds باشد. حاصل x٢

اندازهگیری ضریب هدایت حرارتی جامدات در سیستم شعاعی و خطی

فصل دهم: همبستگی و رگرسیون

اصول انتخاب موتور با مفاهیم بسیار ساده شروع و با نکات کاربردی به پایان می رسد که این خود به درک و همراهی خواننده کمک بسیاری می کند.

محاسبات کوانتمی 1 علم ساخت و استفاده از کامپیوتري است که بر پایه ي اصول مکانیک کوانتم قرار گرفته است.

باشند و c عددی ثابت باشد آنگاه تابع های زیر نیز در a پیوسته اند. به شرطی که g(a) 0 f g

آشنایی با پدیده ماره (moiré)

نکنید... بخوانید خالء علمی خود را پر کنید و دانش خودتان را ارائه دهید.

Transcript:

تحلیل و ارزیابی عملکرد الگوریتم های تکاملی در بهینه سازی تولید موارد آزمون 1 دانشجوی 2 1 مریم سالخورد وحيد خطيبی بردسيری کارشناسی ارشدگروه کامپيوتر دانشگاه آزاد اسالمی واحد کرمان Salkhord.maryam@yahoo.com 2 استادیار گروه کامپيوتر دانشگاه آزاد اسالمی واحد بردسير Khatibi78@yahoo.com چکيده - آزمون نرم افزار یک عنصر حياتی از تضمين کيفيت و بيانگر بازبينی نهایی مشخصات طراحی و توليد کد است. هنگامی که کد منبع توليد شد نرم افزار باید آزموده شود تا خطاهای ممکن قبل از تحویل به مشتری کشف گردد. آزمودن نرم افزارهای مرتبط با جان انسان )مثل کنترل پرواز و نظارت بر راکتورهای هسته ای( ممکن است سه تا پنج برابر مراحل دیگر هزینه بردارد. هدف در آزمون نرم افزارها طراحی موارد آزمونی است که احتمال یافتن خطا را با حداقل مقدار کار و زمان باال ببرد. در توليد موارد آزمون باید داده هایی یافت شوند که بهترین مقادیر را برای پيمایش مسير آزمون داشته باشند به همين منظور در این مقاله سعی شده روش هایی از توليد موارد آزمون که بر اساس الگوریتم های تکاملی می باشند بررسی شوند. این الگوریتمها در هر مرحله تکرار سعی در بهتر کردن مجموعه راهحلها دارند در نتيجه بهينه ترین مقادیر داده ها در جهت آزمون نرم افزار توليد خواهند شد. از آن جا که توليد موارد آزمون بهينه به عنوان یک اصل اساسی در حوزه مهندسی نرم افزار مورد توجه است بررسی انجام شده در این مقاله می تواند به عنوان یک مرجع مورد استفاده محققين قرار بگيرد. کليد واژه- آزمون مسير پایه آزمون نرم افزار الگوریتم های تکاملی توليد موارد آزمون. 1- مقدمه آزمون نرم افزار را به منظور صحت عملکرد می توان به دو نوع فعاليت متمایز طبقه بندی کرد: آزمون جعبه سياه که در آن هيچ دسترسی به کد منبع و منابع دیگر برنامه نخواهيد داشت و آزمون جعبه سفيد که به منطق داخلی و ساختار کد برنامه احاطه دارید ]1[. درجه اجرا شدن آزمون جعبه سفيد را می توان با معيار پيمایش آزمون مسير که داده آزمون را بر اساس ساختار داخلی برنامه توليد می کند اندازه گيری کرد. اهداف آزمون را می توان به این ترتيب تعریف کرد: 1.آزمون فرآیند اجرای برنامه به قصد یافتن خطاست. 2.مورد آزمون خوب موردی است که احتمال یافتن خطاهای کشف شده در آن باال باشد. 3.آزمون موفق آزمونی است که خطاهای کشف نشده را کشف می کند] 2 [. آزمون مسير پایه نيز یک تکنيک جعبه سفيد است که نخستين بار توسط تام مک کيب ]3[ پيشنهاد شد. روش مسيرهای پایه طراح موارد آزمون را قادر می سازد تا ميزانی منطقی از پيچيدگی سيکلوماتيک بدست آورد و از این ميزان به عنوان راهنمایی جهت تعریف یک مجموعه پایه از مسيرهای اجرا استفاده کند. موارد آزمون بدست آمده برای امتحان کردن این مجموعه پایه هر دستور از برنامه را حداقل یک بار در اثنای آزمون اجرا خواهند کرد. برای بدست آوردن مجموعه مسير پایه باید مراحل زیر را اجرا نمود] 4 [: استفاده از طراحی یا کد به عنوان یک بستر و رسم 1. گراف جریان مربوطه تعيين پيچيدگی سيکلوماتيک گراف جریان 2. تعيين مجموعه پایه برای مسيرهای مستقل خطی 3. تهيه موارد آزمونی که اجرای همه ی مسيرها در 4. مجموعه پایه را الزامی می کنند.

پس به منظور دسترسی به بهترین موارد آزمون باید مجموعه مسير های پایه ای توليد شوند که پيمایش امکان پذیر داشته باشند. یک رویکرد برای توليد داده های آزمون بهينه استفاده از الگوریتم های تکاملی می باشد. همان طور که تاریخ این الگوریتم ها نشان می دهد گونه های زیادی از الگوریتم های تکاملی وجود دارند اما ایده همه آن ها یکی است: با داشتن جمعيتی از گونه ها فشار محيطی باعث انتخاب می شود و این افزایش شایستگی جمعيت را نتيجه می دهد. در این عمل دو نيروی اصلی وجود دارد که پایه سيستم تکاملی است: عملگرهای تغيير یعنی ترکيب و جهش. علت استفاده از این الگوریتم ها در بين الگوریتم های بهينه سازی موجود دیگر این است که با این روش ها می توان بهينه سازی را به طور موازی روی چندین بخش جمعيت انجام داد در نتيجه احتمال کمتری برای قرار گرفتن در بهينه های محلی در الگوریتم های تکاملی وجود دارد و با این رویکرد می توان در نهایت به بهينه ترین پاسخ دست یافت] 5 [. این مقاله در ادامه به ترتيب به موضوعات زیر می پردازد: بخش 2 بررسی رویکرد های موجود در زمينه آزمون نرم افزار بخش 3 استفاده از الگوریتم های تکاملی به منظور توليد موارد آزمون و بخش 4 بحث و نتيجه گيری. 2- بررسی رویکرد های موجود در زمینه آزمون نرم افزار همان طور که در قسمت قبل اشاره شد فرآیند آزمون نرم افزار را می توانيم به کمک طراحی موارد آزمون انجام دهيم. به دليل وجود روش های متعدد در این زمينه یافتن بهترین رویکرد مورد توجه می باشد. از جمله تکنيک های بکار گرفته شده به منظور توليد موارد آزمون می توان به مطالبی که در ادامه و به ترتيب سير تاریخی ذکر شده اند اشاره کرد. در سال 1995 Pool یک روش توليد مسير های پایه براساس جستجوی اول عمق در گراف کنترل جریان را مورد بحث قرار داد که از جستجوی بازگشتی در CFG استفاده می کرد. با توجه به روش وی حلقه ها به حساب نمی آیند و عالوه بر آن این روش چگونگی انتخاب گره جانشين گره چندگانه را در CFG برای ایجاد یک مسير پایه در طول مجموعه مسيرهای پایه نمی ساخت داند. محدودیت اصلی این است که این روش به خاطر یافته نبودن کد غير قابل اعتماد است. موارد آزمون کاربردی ایجاد می شوند اما تعداد مسير ها در مجموعه پایه برابر با اندازه پيچيدگی CFG نيست] 6 [. Bueno و Jino در سال 2222 رویکردی پيشنهاد دادند که از کنترل جریان و داده با اطالعات پویا برای تحقق آزمون پوشش مسير مسير استفاده می کند. تعداد گره های تصادفی بين هدف و مسير واقعی)اجرا شده( به عنوان یک مقياس شباهت بين هدف و پاسخ حاصل مورد استفاده قرار گرفت که نرمال شده ی فاصله ی شاخه در گره هایی که مسير واقعی از مسير هدف منحرف می شد را برای تشکيل تابع برازندگی جمع بندی کردند] 7 [. عالوه بر این آن ها با نظارت بر پيشرفت جستجوی آزمون داده مورد نياز به شناسایی مسير های غير عملی پرداختند. شش برنامه به عنوان توابع هزینه برای آزمون استفاده شده بود. آن ها کار بر روی آزمون مسير تکاملی در سال ]8[ 2221 و ]9[ 2222 را با تابع برازندگی مشابه ادامه دادند. این فعاليت ها با اهدافی همچون توسعه ی معيار های متوقف کردن فرایند توليد داده آزمون تکاملی زودتر از زمانی است که ادامه توليد نادرست به نظر می رسد. در سال Hermadi 2223 و Ahmed آزمون مسير تکاملی با استفاده از مسيرهای چندگانه را ارائه دادند. به این معنی که به جای آن که در هر جستجو یافتن فقط یک مسير را بررسی کنند همه ی مسير های هدف را یکباره مورد جستجو قرار می دادند. آن ها توابع برازندگی متفاوتی را بررسی و پيشنهاد کردند که تشکيل شده اند از ترکيب سطح تقریبی و فاصله شاخه. مواردی که در تشکيل توابع برازندگی در نظر گرفته شده اند شامل روش پيمایش مسير نفوذ همسایگی وزن دهی و نرمال سازی بودند. سه مسئله ی برای توليد داده آزمون استفاده شد] 12 [. یک سال بعد Mansour و Salame دو الگوریتم توليد داده برای آزمون مسير را مقایسه کردند. یعنی تبرید شبيه سازی شده) SA ( و ژنتيک) (. تابع برازندگی آن ها از فاصله همينگ بين گره های مربوط به مسير هدف و مسير اجرا شده تشکيل شده بود. هشت مسئله ی آزمون با پيچيدیگی سيکلوماتيک در

محدوده ی 2 و 14 برای اعتبار این رویکرد اعمال شد. نتایج تجربی نشان داد سریع تر از SA می باشد] 11 [. در سال Chen 2228 و Zhon یک چند جمعيتی) MP ( برای آزمون مسير ارائه دادند. تابع برازندگی مجموع همه ی فاصله شاخه های بين مسير هدف و مسير اجرا شده بود. برنامه ی طبقه بندی مثلث تنها برنامه استفاده شده برای اعتبار دهی این رویکرد بود. کار تجربی تایيد کرد که MP موثرتر و کارآمدتر از الگوریتم ژنتيک تک جمعيتی می باشد] 12 [. در سال 2211 Arcuri برای دست یابی به پوشش شاخه در برنامه های شئ گرا بر روی طول موارد آزمون کار می کرد. در مطالعه ی او طول موارد آزمون به آسانی می تواند رشد کند و شاخه های بيشتری را پيمایش کنند.. Arcuri چندین روش ارائه داد که می توانند رشد خود را کنترل کنند. نتایج تجربی که با استفاده از ابزار EVOSUITE ایجاد شدند نشان دادند که این روش ها به طور قابل توجهی می توانند عملکرد توليد کننده ی مورد آزمون را بهبود دهند. عالوه بر این Arcuri افزود که موارد جدول )1(: بررسی رویکرد های موجود در زمينه توليد موارد آزمون رویکرد ها جستجوی اول عمق در گراف کنترل جریان معيار کنترل جریان اطالعات پویا آزمون تکاملی استفاده مسيرهای چندگانه الگوریتم ژنتيک با مسير با از چند جمعيتی برای آزمون مسير ابزار EVOSUITE برای پيمایش مسير طبق تحقيقاتی که مزایا توليد موارد آزمون کاربردی شناسایی مسير های غير عملی توسعه ی معيار های متوقف کردن زود هنگام فرایند توليد داده آزمون تکاملی بهبود سرعت آزمون موثرتر و کارآمدتر از الگوریتم ژنتيک تک جمعيتی موارد آزمون بزرگ تر)طوالنی تر( برنامه های آزمون دشوار را برای آزمون آسان تر می کنند بهبود سرعت آزمون Latiu معایب عدم بررسی حلقه ها عدم ساخت یافتگی نابرابری تعداد مسيرها با پيچيدگی سيکلوماتيک عدم بررسی حلقه ها همگرایی زودرس همگرایی زودرس همگرایی زودرس و همکارانش] 14 [ در سال 2212 تحت عنوان توليد خودکار داده آزمون برای آزمون مسير نرم افزار با استفاده از الگوریتم های تکاملی انجام دادند یک مقایسه بين 3 الگوریتم تکاملی مهم برای توليد خودکار داده آزمون ارائه شد. یعنی PSO و SA به منظور استفاده الگوریتم ژنتيک مسير مورد نظر برنامه را که به آن مسير هدف می گویند مشخص می کند و دو روش دیگر که الگوریتم بهينه سازی تجمعی ذرات و الگوریتم باز پخت شبيه سازی هستند در رابطه با معيارهای اندازه گيری سطح تقریبی و فاصله شاخه با الگوریتم ژنتيک برای توليد خودکار داده آزمون مقایسه آزمون بزرگ تر)طوالنی تر( برنامه های آزمون دشوار را برای آزمون آسان تر می کنند] 13 [. با توجه به مرور مختصری از تاریخچه ی ذکر شده بخش 2 در این زمينه می توانيم رویکرد های موجود را جمع بندی و همچنين نيازمندی ها را بررسی کنيم سپس راه حل های ممکن را ارائه دهيم. بر این اساس نتایج حاصل را می توان در جدول )1( مشاهده کرد. 3- استفاده از الگوریتم های تکاملی به منظور تولید موارد آزمون الگوریتم های تکاملی غالبا به منظور یافتن پاسخ بهينه در مسائل خطی گسسته مسير یابی و جستجو استفاده می شوند. از آنجا که در زمينه ی آزمون مسير نرم افزار به دنبال یافتن موارد آزمون بهينه به عنوان بهترین پاسخ ها برای پيمایش مسيرهای امکان پذیر برنامه هستيم می توانيم از این الگوریتم ها در رسيدن به هدف مورد نظر استفاده کنيم.

شدند. نتایج بدست آمده براساس روش ارائه شده نشان داد که استراتژی های آزمون تکاملی خيلی مناسب تر از توليد داده هایی است که یک مسير هدف را در یک برنامه کامپيوتری پوشش می دهد. مقایسه چند الگوریتم برای تعيين یکی از مناسب ترین آن ها برای حل مشکل آزمون مسير مهم است. روش ارائه شده در یک زیرمجموعه ای از توابع هزینه که بيشتر استفاده می شوند به کار برده شده از جمله: برنامه های طبقه بندی مثلث حل معادله درجه دو ترتيب صعودی برای یک گروه 3 عضوی برنامه ای که 3 عدد را که مجموعشان برابر 252 است پيدا می کند تابع حداقل تابع حداکثر تابع مقدار ميانه تابع فيبوناچی یک برنامه برای پيدا کردن عدد که 3 مقدار ميانگين حسابی ای برابر 152 دارند و یک برنامه برای پيدا کردن 3 عدد که حاصل آن ها صفر می شود. شکل )1( روش قدم به قدم توليد داده آزمایشی برای مثال خيلی مهم تابع طبقه بندی مثلث را ارائه می کند: function F=Cost (inpz) x=inpz(1); y=inpz(2); z=inpz(3); k=1; approximation_level = 2; F=0; if ((x + y > z) && (y + z > x) && (z + x > y)) approximation_level = 1; if ((x ~= y) && (y ~= z) && (z ~= x)) F = (3*k /3*k + 1) + approximation_level; elseif ((x == y) && (y ~= z) (y == z) && (z ~= x) (z ==x) &&(x ~= y)) F=( min(min(abs(x-y)+2*k,abs(y-z)+2*k),abs(z- x)+2*k))/(min(min(abs(x-y)+2*k,abs(y-z)+2*k),abs(z- x)+2*k) + 1) +approximation_level; else F= ((x + y + z + k) / ((x + y + z + k) + 1))+ approximation_level; end end end شکل 1: شبه کد برنامه طبقه بندی مثلث از سوی دیگر بنا بر تحقيقاتی که و Hermadi همکارانش] 51 [ در سال 2214 انجام دادند در توليد داده برای آزمون مسير مسيرهایی که پيمایش می شوند شامل برخی از مسيرهای غير عملی هستند. پيدا کردن داده آزمون برای پوشش آن مسيرها غير ممکن است. زمانی که مسيرهای ممکن پوشش داده شده اند و همه ی مسير های هدف باقی مانده غير عملی اند به جای توليد نامحدود و یا توليد محدود نسل توقف زودتر جستجو مطلوب تر خواهد بود. 21 برنامه برای ارزیابی روش آن ها استفاده شده است. در مقایسه با جستجو برای یک تعداد استاندارد از توليدات به طور متوسط از 72-32 درصد مجموع محاسبات در برنامه آزمون از مسيرهای غير ممکن اجتناب شد و هيچ راه حل عملی ای در این پایان زود هنگام از دست نرفت. به طور کلی معيار های متوقف کننده ای دارد که می توانند برای خاتمه ی روند تکاملی استفاده شوند در آزمون مسير مشابه این است که برخی از مسير های هدف غير ممکن هستند و هيچ داده آزمونی نمی تواند به اجرای این مسيرها منجر شود. Hermadi و همکارانش مدل زمان اجرای لگاریتمی پوآسون را که می توان در پيش بينی احتمال پيدا کردن مسير)های( در طول یک توليد)نسل( از بر اساس آزمون مسير استفاده کرد را بر اساس معادله )1( پيشنهاد کردند. استراتژی آن ها جستجو برای یک نسل بيشتر مشابه آزمون در یک فاصله زمانی بيشتر است. μ ) 1( انتظار می در فرمول )1( زمان اجرای μ مجموع تعداد معایب)شکست( است که رود در هنگام آزمون برنامه در مقادیر مشخصی از به وجود آید. عيوب مورد انتظار در یک نقطه خاص از زمان. شدت شکست. در هر شکست می باشد. شدت شکست می باشد تعداد مقدار اوليه ی درجه ی کاهش در شدت شکست نرمال شده تابع هزینه)معادله )2((: یک مسير هدف به عنوان دنباله ای از جفت های عدد گزاره ای)یا شاخه( نشان داده می شود. تابع برازندگی مورد استفاده در آن آزمایش شامل سطح تقریبی) AL ( و فاصله شاخه) BD ( است. AL شباهت یا عدم شباهت بين مسير گرفته شده به وسيله داده ورودی و مسير هدف را مشخص می کند و به عنوان تعداد شاخه های هم تا )غير هم تا( محاسبه می شود.

محاسبه ادامه پيدا می کند تا با اولين شاخه غير هم تا مواجه شود. اگر مسيری متفاوت با مسير مورد نظر دیده شود BD به عنوان تابع فاصله KOREL محاسبه می شود. I ) 2( مسيرها)هدف( پيمایش شده ی هدف شماره مسير)هدف( عدد ورودی j حداقل طول بين مسير هدف i j i بين مسير هدف و مسير پيمایش شده j i تعداد و مسير نرمال شده فاصله شاخه بين مسير و مسير پيمایش شده j نرمال شده سطح تقریبی می باشند. روش پيشنهاد شده با الهام از مدل قابليت رشد نرم افزار که یک روش اميدوار کننده است به عنوان یک معيار متوقف کننده در آزمون مسير تکاملی مورد استفاده قرار گرفت. نتایج تجربی نيز قابل اجرا و بهينه بودن این روش را نشان داد چراکه ميانگين تعداد مسير های پيمایش شده قبل از اعمال معيار توقف 8/96 و بعد از اعمال معيار توقف 7/59 محاسبه شد مسيرهای امکان پذیر حذف شدند و در نتيجه سرعت آزمون نيز افزایش یافت. روش دیگری از بکارگيری الگوریتم تکاملی را Ahmed S ]16[ سال 2214 Ghiduk در تحقيقی که و تحت عنوان توليد خودکار مسيرها ی آزمون پایه با استفاده از الگوریتم ژنتيک با طول متغير انجام شد ارائه دادند یک الگوریتم ژنتيک جدید برای توليد مسيرهای آزمون معرفی گردید. در این الگوریتم طول کروموزوم در هنگام تغيير طول مسير از یک تعداد تکرار به تعداد تکرار دیگری تغيير می کند. بر اساس الگوریتم پيشنهادی یک روش جدید برای توليد خودکار مجموعه ای از مسيرهای آزمون پایه که می توانند به عنوان مسيرهای آزمون در هر روش آزمون مسير استفاده شوند ارائه شد. روش پيشنهاد شده از یک رویکرد برای بررسی استقالل مسير های توليد شده که مجموعه مسير های پایه را شامل می شوند استفاده می کند. عالوه بر این این تکنيک یک روش برای بررسی امکان پذیری مسير های توليد شده را بکار می گيرد. الگوریتم که به منظور توليد خودکار مسير های آزمون پایه برای آزمون نرم افزار ارائه شده از یک تابع برازندگی جدید برای اندازه گيری مسير آزمون توليد شده استفاده می کند. این تابع برازندگی بر اساس مفهوم تعداد لبه های همجوار در گراف- dd )گراف- dd می تواند با کاهش CFG ساخته شود ) از نرم افزار تحت آزمون می باشد. مسئله ی این کار تعریف یک الگوریتم ژنتيک جدید و استفاده از آن برای توليد مجموعه Q از مسير های پایه است. فضای جستجوی الگوریتم پيشنهاد شده D = { e e DDG and e is reached by entry and reaches exit} می باشد. پيشنهاد شده از یک بردار اعداد صحيح به عنوان کروموزوم برای نمایش لبه ها در نمودار- dd برنامه مورد آزمون استفاده می کند. در کل هر مقدار از بردار)کروموزوم( به لبه متناظرش نگاشت می شود. PS که بردار هایی با اعداد صحيح به طول 2 می باشند به صورت تصادفی برای نمایش جمعيت اوليه توليد می شوند. PS اندازه جمعيت می باشد. طول 2 شامل دو یال ورودی و خروجی گراف- dd dd برنامه تحت آزمون می باشد. کم ترین مقدار طول کرومزوم 2 و بيش ترین مقدار آن برابر با تعداد یال های گراف- می باشد. الگوریتم پيشنهاد شده برای تعریف تابع برازندگی به یال های همجوار در مسير وابسته است. مقدار برازندگی هر کرومزوم است و شود برای به صورت زیر محاسبه می شود: ) 3( تعداد یال های هم جوار می باشد i کرومزوم وزن یال ) ( می باشد که به صورت بهينه است که نيز طول کرومزوم در فرآیند انتخاب بيشتری داشته باشد. تعریف می است. در این مورد مقداری پيشنهاد شده از روش چرخ رولت استفاده شده است. فرآیند انتخاب بر اساس چرخ رولت در حال PS حرکت دفعه می باشد. توليد مثل: در این فاز از سه عملگر تقاطع جهش و پرورش استفاده شده است. ابتدا عمل تقاطع انجام می شود مکان POS نقطه ی تقاطع کرومزوم می باشد سپس عملگر جهش اعمال می شود PM روند زیر اجرا می شود: احتمال جهش می باشد در توليد عدد تصادفی r r<pm اگر در بازه ی ]1...2[ پيشنهاد شده سپس سلول را با جا بجا کردن یال با یال خواهر/برادر)یال هایی با والد یکسان(تغيير بده

بعد از جهش عملگری را که در تحقيقات Ahmed S Ghiduk و تعریف شده است یعنی پرورش به صورت دوره ای در تمام تکرار های الگوریتم ژنتيک اعمال می شود. عملگر پرورش برای هر کرومزوم در جمعيت جاری به روش زیر انجام می شود: توليد اعداد تصادفی POS در بازه ]1-L...2[ L برابر با طول کرومزوم می باشد تعریف یال در مکان POS بين یال های جانشين آن درج یال جانشين در مکان کرومزوم به اندازه یک واحد شرایط توقف: و انتخاب تصادفی یک یال از 1+POS.1.2 و افزایش طول زمانی که مسير های آزمون توليد شده با شرایط مجموعه مسيرهای پایه مطابقت کنند زمانی که به حداکثر تعداد نسل ها برسيم روش پيشنهادی به مشکل وجود حلقه در غلبه می CFG کند و این روش قابليت توليد مسير های امکان پذیر را دارد. نتایج نشان می دهند که این روش باعث کاهش قابل توجهی در تالش برای توليد مسير می شود و این که الگوریتم پيشنهاد شده در توليد مسير آزمون موثر است. -4 بحث و نتیجه گیری هدف در این مقاله ارائه استراتژی های موجود جهت توسعه معيار های فرایند توليد داده آزمون به کمک الگوریتم های تکاملی بوده است. در مطالعات قبلی با استفاده از داده های نرم افزاری مانند کد منبع مسيرهای اجرایی و بهره گيری از رویکرد توليد داده ها به کمک الگوریتم های تکاملی مجموعه ای بهينه از استراتژی های آزمون نرم افزار ارائه گردید. عالوه بر آن الزم به ذکر است که بهبود آزمون نرم افزار منجربه کاهش هزینه های مالی و زمانی و افزایش کيفيت نهایی نرم افزار شده است. تکنيک آزمون مسير پایه یکی از چند تکنيک مربوط به آزمون ساختار کنترلی است. اگرچه آزمون مسير های پایه ساده و بسيار کارآمد است اما به تنهایی کافی نيست. شکل های دیگری از آزمون ساختار کنترلی وجود دارند که کيفيت آزمون جعبه سفيد را بهبود بخشيده و پوشش دهی آن را وسعت می بخشند مانند آزمون شرط ها آزمون جریان داده ها و آزمون حلقه ها. همچنين عالوه بر الگوریتم های تکاملی ذکر شده الگوریتم های بهينه سازی جدید تری در سال های اخير معرفی شده اند که می توان از آن ها نيز در این زمينه استفاده کرد. مراجع [1] J.Kempka et all, "Design and analysis of different alternating variable searches for search-based software testing", theoret. Comput. Sci, 2015. [2] Glenford J. Myers. "The Art of Software Testing", JohnWiley & Sons, pp.1-105, 2004. [3] McCabe,"A Complexity Measure". IEEE Transactions on Software Engineering: pp.308 320, December 1977. [4] R.S. Pressman & Associates, "Software Engineering: a Practitioner's approach".pp.1-161, 1947. [5] B.Yuan M.Gallagher, "playing in continuous space: some analysis and extension of population-based incremental", IEEE Evolutionary computation, pp.443-450, 2003. [6] Arthur H. Watson, Thomas J. McCabe, "Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric", NI S T, pp.1-124, 1996. [7] P.M.S. Bueno, M. Jino, "Identification of potentially infeasible program paths by monitoring the search for test data",ieee Computer Society, pp. 209 218, 2000. [8] P.M.S. Bueno, M. Jino, "Automatic test data generation for program paths using genetic algorithms", SEKE 01, pp. 2 9, 2001. [9] P.M.S. Bueno, M. Jino, "Automatic test data generation for program paths using genetic algorithms", IJSEKE, pp. 691 709, 2002. [10] I. Hermadi, M.A. Ahmed, "Genetic Algorithm based test data generator", CEC, pp. 85 91, 2003. [11] N. Mansour, M. Salame, "Data generation for path testing", pp. 121 136, 2004. [12] Y. Chen, Y. Zhong, "Automatic path-oriented test data generation using a multi population genetic algorithm", ICNC, pp. 566 570, 2008. [13] A. Arcuri,"A theoretical and empirical analysis of the role of test sequence length in software testing for structural coverage", pp. 497 519, 2011. [14] Gentiana Ioana Latiu et all, "Automatic Test Data Generation for Software Path Testing using Evolutionary Algorithms", Third International Conference on Emerging Intelligent Data and Web Technologies, pp.1-8, 2012 [15] I. Hermadi a,b, C. Lokan b, R. Sarker b, "Dynamic stopping criteria for search-based test data generation for path Testing", Information and Software Technology, pp. 395 407, 2014. [16] Ahmed S, Ghiduk, "Automatic generation of basis test paths Using variable length genetic algorithm", Information Processing Letters 114, pp.304 316, 2014.